[INFO] fetching crate grafen 0.9.1...
[INFO] checking grafen-0.9.1 against master#03c609abb6638f9d7f49f34326d4137d07f5cd61 for pr-155945
[INFO] extracting crate grafen 0.9.1 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate grafen 0.9.1
[INFO] finished tweaking crates.io crate grafen 0.9.1
[INFO] tweaked toml for crates.io crate grafen 0.9.1 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate grafen 0.9.1 on toolchain 03c609abb6638f9d7f49f34326d4137d07f5cd61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 46 packages to latest compatible versions
[INFO] [stderr]       Adding ansi_term v0.9.0 (available: v0.12.1)
[INFO] [stderr]       Adding clap v2.23.3 (available: v2.34.0)
[INFO] [stderr]       Adding colored v1.9.4 (available: v3.1.1)
[INFO] [stderr]       Adding dialoguer v0.1.0 (available: v0.12.0)
[INFO] [stderr]       Adding rand v0.3.23 (available: v0.10.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: An explicit [[bin]] section is specified in Cargo.toml which currently
[INFO] [stderr] disables Cargo from automatically inferring other binary targets.
[INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following
[INFO] [stderr] files will be included as a binary target:
[INFO] [stderr] 
[INFO] [stderr] * src/bin/output.rs
[INFO] [stderr] * src/bin/error.rs
[INFO] [stderr] 
[INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be
[INFO] [stderr] ready to be compiled as a binary target today. You can future-proof yourself
[INFO] [stderr] and disable this warning by adding `autobins = false` to your [package]
[INFO] [stderr] section. You may also move the files to a location where Cargo would not
[INFO] [stderr] automatically infer them to be a target, such as in subfolders.
[INFO] [stderr] 
[INFO] [stderr] For more information on this warning you can consult
[INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded dialoguer v0.1.0
[INFO] [stderr]   Downloaded colored v1.9.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1daac3a76c76179804146066d0f8125bd14efd84fdd3aa0c3b14da89494435f3
[INFO] running `Command { std: "docker" "start" "-a" "1daac3a76c76179804146066d0f8125bd14efd84fdd3aa0c3b14da89494435f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1daac3a76c76179804146066d0f8125bd14efd84fdd3aa0c3b14da89494435f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1daac3a76c76179804146066d0f8125bd14efd84fdd3aa0c3b14da89494435f3", kill_on_drop: false }`
[INFO] [stdout] 1daac3a76c76179804146066d0f8125bd14efd84fdd3aa0c3b14da89494435f3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5e8c8ad564b2bec4ec5f827009bc741f83bd96a48de4328f99d510c3c0ae2a4b
[INFO] running `Command { std: "docker" "start" "-a" "5e8c8ad564b2bec4ec5f827009bc741f83bd96a48de4328f99d510c3c0ae2a4b", kill_on_drop: false }`
[INFO] [stderr] warning: An explicit [[bin]] section is specified in Cargo.toml which currently
[INFO] [stderr] disables Cargo from automatically inferring other binary targets.
[INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following
[INFO] [stderr] files will be included as a binary target:
[INFO] [stderr] 
[INFO] [stderr] * src/bin/output.rs
[INFO] [stderr] * src/bin/error.rs
[INFO] [stderr] 
[INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be
[INFO] [stderr] ready to be compiled as a binary target today. You can future-proof yourself
[INFO] [stderr] and disable this warning by adding `autobins = false` to your [package]
[INFO] [stderr] section. You may also move the files to a location where Cargo would not
[INFO] [stderr] automatically infer them to be a target, such as in subfolders.
[INFO] [stderr] 
[INFO] [stderr] For more information on this warning you can consult
[INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]     Checking ansi_term v0.9.0
[INFO] [stderr]     Checking strsim v0.6.0
[INFO] [stderr]     Checking vec_map v0.7.0
[INFO] [stderr]     Checking unicode-segmentation v1.13.2
[INFO] [stderr]     Checking bitflags v0.8.2
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]     Checking term_size v0.3.2
[INFO] [stderr]     Checking console v0.16.3
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking tempfile v2.2.0
[INFO] [stderr]     Checking colored v1.9.4
[INFO] [stderr]     Checking dialoguer v0.1.0
[INFO] [stderr]     Checking clap v2.23.3
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking grafen v0.9.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated function `rand::sample`: renamed to seq::sample_iter
[INFO] [stdout]    --> src/volume/cuboid.rs:196:38
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let selected_indices = rand::sample(&mut rng, 0..num_cells, num_coords as usize);
[INFO] [stdout]     |                                      ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/iterator.rs:10:33
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type AtomIterItem<'a> = Box<Iterator<Item = CurrentAtom<'a>> + 'a>;
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type AtomIterItem<'a> = Box<dyn Iterator<Item = CurrentAtom<'a>> + 'a>;
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::sample`: renamed to seq::sample_iter
[INFO] [stdout]    --> src/volume/cuboid.rs:196:38
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let selected_indices = rand::sample(&mut rng, 0..num_cells, num_coords as usize);
[INFO] [stdout]     |                                      ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/error.rs:34:32
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/iterator.rs:10:33
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type AtomIterItem<'a> = Box<Iterator<Item = CurrentAtom<'a>> + 'a>;
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type AtomIterItem<'a> = Box<dyn Iterator<Item = CurrentAtom<'a>> + 'a>;
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/coord.rs:203:67
[INFO] [stdout]     |
[INFO] [stdout] 203 |                  .and_then(|v| v.parse::<f64>().map_err(|err| err.description().to_string()))
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/error.rs:34:32
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/coord.rs:203:67
[INFO] [stdout]     |
[INFO] [stdout] 203 |                  .and_then(|v| v.parse::<f64>().map_err(|err| err.description().to_string()))
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `residue` and `radius` are never read
[INFO] [stdout]    --> src/surface/sheet.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct Circle {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] 176 |     residue: Option<Residue>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 177 |     origin: Coord,
[INFO] [stdout] 178 |     radius: f64,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Circle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/system.rs:69:36
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn iter_atoms(&'a self) -> AtomIterItem {
[INFO] [stdout]    |                        --          ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn iter_atoms(&'a self) -> AtomIterItem<'a> {
[INFO] [stdout]    |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/database.rs:125:44
[INFO] [stdout]     |
[INFO] [stdout] 125 |               pub fn get_coords(&'a self) -> &Vec<Coord> {
[INFO] [stdout]     |                                  --          ^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 242 | / create_entry_wrapper![
[INFO] [stdout] 243 | |     ComponentEntry,
[INFO] [stdout] 244 | |     (volume::Cuboid => VolumeCuboid),
[INFO] [stdout] 245 | |     (volume::Cylinder => VolumeCylinder),
[INFO] [stdout] 246 | |     (surface::Sheet => SurfaceSheet),
[INFO] [stdout] 247 | |     (surface::Cylinder => SurfaceCylinder)
[INFO] [stdout] 248 | | ];
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `create_entry_wrapper` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 125 |             pub fn get_coords(&'a self) -> &'a Vec<Coord> {
[INFO] [stdout]     |                                             ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/database.rs:134:52
[INFO] [stdout]     |
[INFO] [stdout] 134 |               pub fn get_coords_mut(&'a mut self) -> &mut Vec<Coord> {
[INFO] [stdout]     |                                      --              ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 242 | / create_entry_wrapper![
[INFO] [stdout] 243 | |     ComponentEntry,
[INFO] [stdout] 244 | |     (volume::Cuboid => VolumeCuboid),
[INFO] [stdout] 245 | |     (volume::Cylinder => VolumeCylinder),
[INFO] [stdout] 246 | |     (surface::Sheet => SurfaceSheet),
[INFO] [stdout] 247 | |     (surface::Cylinder => SurfaceCylinder)
[INFO] [stdout] 248 | | ];
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `create_entry_wrapper` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 134 |             pub fn get_coords_mut(&'a mut self) -> &'a mut Vec<Coord> {
[INFO] [stdout]     |                                                     ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/database.rs:187:40
[INFO] [stdout]     |
[INFO] [stdout] 187 |               fn iter_atoms(&'a self) -> AtomIterItem {
[INFO] [stdout]     |                              --          ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 242 | / create_entry_wrapper![
[INFO] [stdout] 243 | |     ComponentEntry,
[INFO] [stdout] 244 | |     (volume::Cuboid => VolumeCuboid),
[INFO] [stdout] 245 | |     (volume::Cylinder => VolumeCylinder),
[INFO] [stdout] 246 | |     (surface::Sheet => SurfaceSheet),
[INFO] [stdout] 247 | |     (surface::Cylinder => SurfaceCylinder)
[INFO] [stdout] 248 | | ];
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `create_entry_wrapper` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 187 |             fn iter_atoms(&'a self) -> AtomIterItem<'a> {
[INFO] [stdout]     |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/surface/cylinder.rs:17:1
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl_component![Cylinder];
[INFO] [stdout]     | ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `impl_component` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/surface/sheet.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl_component![Sheet];
[INFO] [stdout]     | ---------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `impl_component` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/volume/cuboid.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl_component![Cuboid];
[INFO] [stdout]     | ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `impl_component` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/volume/cylinder.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl_component![Cylinder];
[INFO] [stdout]     | ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `impl_component` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> src/bin/ui/mod.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |         @pre: { system.print_state() };
[INFO] [stdout]    |               ^^                    ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 39 -         @pre: { system.print_state() };
[INFO] [stdout] 39 +         @pre: system.print_state();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> src/bin/ui/mod.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |         @pre: { system.print_state() };
[INFO] [stdout]    |               ^^                    ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 39 -         @pre: { system.print_state() };
[INFO] [stdout] 39 +         @pre: system.print_state();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bin/error.rs:81:32
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn cause(&self) -> Option<&Error> {
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn cause(&self) -> Option<&dyn Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bin/ui/edit_component.rs:66:70
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn get_volume_from_user(components: &[ComponentEntry]) -> Result<Box<Contains>> {
[INFO] [stdout]    |                                                                      ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn get_volume_from_user(components: &[ComponentEntry]) -> Result<Box<dyn Contains>> {
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bin/error.rs:81:32
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn cause(&self) -> Option<&Error> {
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn cause(&self) -> Option<&dyn Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/error.rs:134:38
[INFO] [stdout]     |
[INFO] [stdout] 134 |         GrafenCliError::RunError(err.description().to_string())
[INFO] [stdout]     |                                      ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bin/ui/edit_component.rs:66:70
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn get_volume_from_user(components: &[ComponentEntry]) -> Result<Box<Contains>> {
[INFO] [stdout]    |                                                                      ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn get_volume_from_user(components: &[ComponentEntry]) -> Result<Box<dyn Contains>> {
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/component.rs:44:69
[INFO] [stdout]    |
[INFO] [stdout] 44 |                     format!("Could not remove a component: {}", err.description())
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/component.rs:51:67
[INFO] [stdout]    |
[INFO] [stdout] 51 |                     format!("Could not reorder the list: {}", err.description())
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/residue.rs:26:65
[INFO] [stdout]    |
[INFO] [stdout] 26 |                     format!("Could not create residue: {}", err.description())
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/residue.rs:33:67
[INFO] [stdout]    |
[INFO] [stdout] 33 |                     format!("Could not remove a residue: {}", err.description())
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/residue.rs:40:67
[INFO] [stdout]    |
[INFO] [stdout] 40 |                     format!("Could not reorder the list: {}", err.description())
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/mod.rs:35:65
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     format!("Could not write database: {}", err.description())
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/error.rs:134:38
[INFO] [stdout]     |
[INFO] [stdout] 134 |         GrafenCliError::RunError(err.description().to_string())
[INFO] [stdout]     |                                      ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `residue` and `radius` are never read
[INFO] [stdout]    --> src/surface/sheet.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct Circle {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] 176 |     residue: Option<Residue>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 177 |     origin: Coord,
[INFO] [stdout] 178 |     radius: f64,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Circle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/system.rs:69:36
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn iter_atoms(&'a self) -> AtomIterItem {
[INFO] [stdout]    |                        --          ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn iter_atoms(&'a self) -> AtomIterItem<'a> {
[INFO] [stdout]    |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 296 |     impl_component![TestObject];
[INFO] [stdout]     |     --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `impl_component` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/database.rs:125:44
[INFO] [stdout]     |
[INFO] [stdout] 125 |               pub fn get_coords(&'a self) -> &Vec<Coord> {
[INFO] [stdout]     |                                  --          ^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 242 | / create_entry_wrapper![
[INFO] [stdout] 243 | |     ComponentEntry,
[INFO] [stdout] 244 | |     (volume::Cuboid => VolumeCuboid),
[INFO] [stdout] 245 | |     (volume::Cylinder => VolumeCylinder),
[INFO] [stdout] 246 | |     (surface::Sheet => SurfaceSheet),
[INFO] [stdout] 247 | |     (surface::Cylinder => SurfaceCylinder)
[INFO] [stdout] 248 | | ];
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `create_entry_wrapper` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 125 |             pub fn get_coords(&'a self) -> &'a Vec<Coord> {
[INFO] [stdout]     |                                             ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/database.rs:134:52
[INFO] [stdout]     |
[INFO] [stdout] 134 |               pub fn get_coords_mut(&'a mut self) -> &mut Vec<Coord> {
[INFO] [stdout]     |                                      --              ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 242 | / create_entry_wrapper![
[INFO] [stdout] 243 | |     ComponentEntry,
[INFO] [stdout] 244 | |     (volume::Cuboid => VolumeCuboid),
[INFO] [stdout] 245 | |     (volume::Cylinder => VolumeCylinder),
[INFO] [stdout] 246 | |     (surface::Sheet => SurfaceSheet),
[INFO] [stdout] 247 | |     (surface::Cylinder => SurfaceCylinder)
[INFO] [stdout] 248 | | ];
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `create_entry_wrapper` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 134 |             pub fn get_coords_mut(&'a mut self) -> &'a mut Vec<Coord> {
[INFO] [stdout]     |                                                     ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/database.rs:187:40
[INFO] [stdout]     |
[INFO] [stdout] 187 |               fn iter_atoms(&'a self) -> AtomIterItem {
[INFO] [stdout]     |                              --          ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 242 | / create_entry_wrapper![
[INFO] [stdout] 243 | |     ComponentEntry,
[INFO] [stdout] 244 | |     (volume::Cuboid => VolumeCuboid),
[INFO] [stdout] 245 | |     (volume::Cylinder => VolumeCylinder),
[INFO] [stdout] 246 | |     (surface::Sheet => SurfaceSheet),
[INFO] [stdout] 247 | |     (surface::Cylinder => SurfaceCylinder)
[INFO] [stdout] 248 | | ];
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `create_entry_wrapper` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 187 |             fn iter_atoms(&'a self) -> AtomIterItem<'a> {
[INFO] [stdout]     |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/surface/cylinder.rs:17:1
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl_component![Cylinder];
[INFO] [stdout]     | ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `impl_component` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/surface/sheet.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl_component![Sheet];
[INFO] [stdout]     | ---------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `impl_component` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/volume/cuboid.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl_component![Cuboid];
[INFO] [stdout]     | ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `impl_component` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/volume/cylinder.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl_component![Cylinder];
[INFO] [stdout]     | ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: this warning originates in the macro `impl_component` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/component.rs:44:69
[INFO] [stdout]    |
[INFO] [stdout] 44 |                     format!("Could not remove a component: {}", err.description())
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/component.rs:51:67
[INFO] [stdout]    |
[INFO] [stdout] 51 |                     format!("Could not reorder the list: {}", err.description())
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/residue.rs:26:65
[INFO] [stdout]    |
[INFO] [stdout] 26 |                     format!("Could not create residue: {}", err.description())
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/residue.rs:33:67
[INFO] [stdout]    |
[INFO] [stdout] 33 |                     format!("Could not remove a residue: {}", err.description())
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/residue.rs:40:67
[INFO] [stdout]    |
[INFO] [stdout] 40 |                     format!("Could not reorder the list: {}", err.description())
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/mod.rs:35:65
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     format!("Could not write database: {}", err.description())
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.21s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.8.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] running `Command { std: "docker" "inspect" "5e8c8ad564b2bec4ec5f827009bc741f83bd96a48de4328f99d510c3c0ae2a4b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5e8c8ad564b2bec4ec5f827009bc741f83bd96a48de4328f99d510c3c0ae2a4b", kill_on_drop: false }`
[INFO] [stdout] 5e8c8ad564b2bec4ec5f827009bc741f83bd96a48de4328f99d510c3c0ae2a4b
